from flask import session, redirect
from werkzeug.security import generate_password_hash, check_password_hash

from models import db
from models.index import User, Order_form


def if_user():
    """'
    判断用户是否登录，登录返回用户对象，未登录返回None
    """

    # 获取用户信息
    user_id = session.get('user_id')
    mobile = session.get('mobile')

    # 测试  测试完删除
    # user_id = '1'
    # mobile = '1'

    # 获取用户对象
    user = db.session.query(User).filter(User.id == user_id, User.mobile == mobile).first()
    # print('------------------', user_id, mobile, user)
    # boole为False user也为False跳转到登录页面

    # 返回用户对象
    # print(user, '---------------------')
    return user


def date(value):
    """
    :param value: 输入输入 year month day 分别获得年 月 日 数字
    输入其他返回None
    :return: 获得年 月 日 数字  输入其他返回None
    """

    date_from = []
    if value == 'year':
        for x in range(1900, 2021):
            date_from.append(str(x) + '年')
    elif value == 'month':
        for x in range(1, 13):
            date_from.append(str(x) + '月')
    elif value == 'day':
        for x in range(1, 32):
            date_from.append(str(x) + '日')
    else:
        date_from = None

    return date_from


def order_count_list():
    """
    :return: 获取用户的订单信息  根据用户订单号进行分类
    返回按订单号分类的大列表  和  对应小列表下标的订单内物品的总金额
    订单大列表中的小列表都是相同的订单号
    """

    # 用户对象
    user = if_user()
    # 订单大列表
    user_order_list = []
    # 订单总价列表
    order_price_count = []
    for order in user.order:
        b = db.session.query(Order_form).filter(Order_form.production_num == order.production_num).all()
        if b not in user_order_list:
            user_order_list.append(b)
    for x in user_order_list:
        b = 0
        for a in x:
            b += int(a.price_count)
        order_price_count.append(str(b))

    return user_order_list, order_price_count
